package com.atguigu.guli.service.edu.feign;

import com.atguigu.guli.service.base.result.R;
import com.atguigu.guli.service.edu.feign.fallback.OssFeignClientFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

@FeignClient(value = "service-oss",fallback = OssFeignClientFallback.class) //service-oss: 相当于 http://localhost:8120
public interface OssFiegnClient {
    /*
    feignclient本质还是通过Http请求发起的
        -- FeignClient注解中服务的名称代表要访问的服务器地址+端口(从注册中心获取)
        -- 方法上@GetMapping映射地址等价于 要访问的服务器中的 某个接口的访问路径
        -- GetMapping 代表请求方式
        -- 方法的形参列表代表访问的服务器接口的 参数
        -- 方法的返回值代表要访问服务的响应响应体内容
     */
    //http://localhost:8120/admin/oss/file/test
//    @GetMapping("/admin/oss/file/test/{uname}/{pwd}")
//    public R test(@PathVariable String uname , @PathVariable String pwd);
//    @GetMapping("/admin/oss/file/test")
////    public R test();
//    //传递参数时必须使用注解：http请求发起时 必须指定参数在请求报文的哪一部分携带
//    public R test(@RequestParam  String uname ,@RequestParam String pwd);// 传递简单类型的参数
    @PostMapping("/admin/oss/file/test")
    public R test(@RequestBody R r); //如果要封装请求体内容，不能使用get方式

    @DeleteMapping("/admin/oss/file/delete")
    public R delete(@RequestParam String path , @RequestParam String module);
}
